/**
 * @filename:Contract 2021-11-09 01:40:35
 * @project com/lwl/blue  V1.0
 * Copyright(c) 2020 <a href=mailto:lanwenliang@yidianlife.com>蓝文良</a> Co. Ltd.
 * All right reserved.
 */
package com.lwl.blue.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.lwl.blue.commont.aop.PowerFieldInterface;
import com.lwl.blue.commont.base.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * <p>代码自动生成，请勿修改</p>
 *
 * <p>说明： 合同表实体类</P>
 *
 * @version: V1.0
 * @author: <a href=mailto:lanwenliang@yidianlife.com>蓝文良</a>
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class Contract extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1636436435423L;

    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(name = "id", value = "ID")
    private Integer id;
    @ApiModelProperty(name = "contractName", value = "订单名称")
    private String contractName;
    @ApiModelProperty(name = "contractNo", value = "订单编号")
    @NotBlank(message = "订单编号不能为空")
    private String contractNo;
    @ApiModelProperty(name = "status", value = "状态")
    private Integer status;
    @ApiModelProperty(name = "customerId", value = "客户ID")
    @NotNull(message = "客人不能为空")
    private Integer customerId;
    @ApiModelProperty(name = "customerContractNo", value = "客人订单编号")
    private String customerContractNo;
    @ApiModelProperty(name = "orderDate", value = "下单日期")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date orderDate;
    @ApiModelProperty(name = "customerHandler", value = "客人经办人")
    private String customerHandler;
    @ApiModelProperty(name = "handler", value = "公司经办人")
    private String handler;
    @ApiModelProperty(name = "customerStartTime", value = "合同起始时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date customerStartTime;
    @ApiModelProperty(name = "customerEndTime", value = "合同结束时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date customerEndTime;
    @ApiModelProperty(name = "boxNumber", value = "外箱数量")
    private BigDecimal boxNumber;
    @ApiModelProperty(name = "totalItemNumber", value = "数量")
    private Integer totalItemNumber;
    @ApiModelProperty(name = "totalPrice", value = "金额")
    @PowerFieldInterface
    private BigDecimal totalPrice;
    @ApiModelProperty(name = "address", value = "地   址")
    private String address;
    @ApiModelProperty(name = "contacts", value = "联系人")
    private String contacts;
    @ApiModelProperty(name = "phone", value = "联系电话")
    private String phone;
    @ApiModelProperty(name = "contractTerms", value = "合同条款")
    private String contractTerms;
    @ApiModelProperty(name = "remarks", value = "备注要求明细")
    private String remarks;
    @ApiModelProperty(name = "quotationId", value = "报价单ID")
    private Integer quotationId;

    //------------其他表字段----------
    @ApiModelProperty(name = "customerName", value = "客人名称")
    @TableField(exist = false)
    private String customerName;
    @ApiModelProperty(name = "customerName", value = "客人编号")
    @TableField(exist = false)
    private String customerNo;
    @ApiModelProperty(name = "quotationName", value = "报价单名称")
    @TableField(exist = false)
    private String quotationName;
    @ApiModelProperty(name = "quotationNo", value = "报价单编号")
    @TableField(exist = false)
    private String quotationNo;

    @ApiModelProperty(name = "createTimeStart", value = "时间条件参数开始--创建时间")
    @TableField(exist = false)
    @JSONField(serialize = false, format = "yyyy-MM-dd HH:mm:ss")
    private Date createTimeStart;
    @ApiModelProperty(name = "createTimeEnd", value = "时间条件参数结束--创建时间")
    @TableField(exist = false)
    @JSONField(serialize = false, format = "yyyy-MM-dd HH:mm:ss")
    private Date createTimeEnd;
    @ApiModelProperty(name = "customerEndTimeStart", value = "时间条件参数开始--合同结束时间")
    @TableField(exist = false)
    @JSONField(serialize = false, format = "yyyy-MM-dd HH:mm:ss")
    private Date customerEndTimeStart;
    @ApiModelProperty(name = "customerEndTimeEnd", value = "时间条件参数结束--合同结束时间")
    @TableField(exist = false)
    @JSONField(serialize = false, format = "yyyy-MM-dd HH:mm:ss")
    private Date customerEndTimeEnd;
    @ApiModelProperty(name = "customerStartTimeStart", value = "时间条件参数开始--合同起始时间")
    @TableField(exist = false)
    @JSONField(serialize = false, format = "yyyy-MM-dd HH:mm:ss")
    private Date customerStartTimeStart;
    @ApiModelProperty(name = "customerStartTimeEnd", value = "时间条件参数结束--合同起始时间")
    @TableField(exist = false)
    @JSONField(serialize = false, format = "yyyy-MM-dd HH:mm:ss")
    private Date customerStartTimeEnd;
    @ApiModelProperty(name = "idBatch", value = "批量主键处理")
    @JSONField(serialize = false)
    @TableField(exist = false)
    private List<Integer> idBatch;
    @ApiModelProperty(name = "orderDateStart", value = "时间条件参数开始--下单日期")
    @TableField(exist = false)
    @JSONField(serialize = false, format = "yyyy-MM-dd")
    private Date orderDateStart;
    @ApiModelProperty(name = "orderDateEnd", value = "时间条件参数结束--下单日期")
    @TableField(exist = false)
    @JSONField(serialize = false, format = "yyyy-MM-dd")
    private Date orderDateEnd;
    @ApiModelProperty(name = "paramAsc", value = "升序参数：address、contacts、contractName、contractNo、contractTerms、createTime、customerContractNo、customerEndTime、customerHandler、customerId、customerStartTime、handler、id、isDelete、orderDate、phone、quotation、remarks、status、totalItemBoxes、totalItemNumbe、totalPrice、")
    @JSONField(serialize = false)
    @TableField(exist = false)
    private String[] paramAsc;
    @ApiModelProperty(name = "paramDesc", value = "降序参数：address、contacts、contractName、contractNo、contractTerms、createTime、customerContractNo、customerEndTime、customerHandler、customerId、customerStartTime、handler、id、isDelete、orderDate、phone、quotation、remarks、status、totalItemBoxes、totalItemNumbe、totalPrice、")
    @JSONField(serialize = false)
    @TableField(exist = false)
    private String[] paramDesc;
}
